D - Polyomino - AtCoder Beginner Contests 322
方針
全ての置き方を探索する
置き方16通り, 回転の仕方4通り、与えられるポリオミノ3つ
ただし、そのまま愚直に実装しようとするとしんどい
8重以上のループに悩まされる
いちいちマス目とブロックの噛み合わせを線形探索する必要があって面倒くさい
戦略
あるマス目の重複可能性のある配置にはstd::vectorよりもstd::setで座標を管理すると素早くread, writeができる。
ブロックの移動領域を整理するために、あらかじめ"正規化"しておく。
今回組むプログラムは複雑なため、各部分で動作が保証されていることが望ましい。
所感
時間はかかるけど、バグを多めに引き起こす自分としては泥沼にハマらないためにはやったほうがいいなあ